package com.ms.education;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateTimeUtil {

	/**
	 *
	 * @return 当前时间，精确到秒
	 */
	public static String getSysTime(){
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date = new Date();
		String dateStr = sdf.format(date);
		return dateStr;
		
	}

	/**
	 *
	 * @param date 当前日期
	 * @return 当前日期 精确到天
	 */
	public static  String formatDate(Date date){
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdf.format(date);
	}

	/**
	 *
	 * @param date 处理的日期
	 * @param amount  要加的天数，可以为负数
	 * @return 得到输入时间的前或后的几天日期
	 */
	public static Date addDays(Date date,int amount){
		Calendar now=Calendar.getInstance();
		now.setTime(date);
		now.set(Calendar.DATE,now.get(Calendar.DATE)+amount);
		return now.getTime();
	}

	/**
	 *
	 * @param d1 时间1
	 * @param d2 时间2
	 * @return 时间2-时间1的天数
	 */
	public static int daysBetweenTwoDate(Date d1,Date d2){
		long t1 = d1.getTime();
		long t2 = d2.getTime();
		long day = (t2 - t1) / ((1000L * 3600L * 24L));
		return (int) day;
	}


	public static void main(String[] args) {
		System.out.println(formatDate(new Date()));
		System.out.println(formatDate(addDays(new Date(),-1)));
		/*
		   2022-01-20
           2022-01-19
		 */
		System.out.println(daysBetweenTwoDate(addDays(new Date(), -9), new Date()));
	}
	
}
